# -*- sh -*-
#
# secret-related tests
#

# secret create
t POST secrets/create Name=mysecret Data=c2VjcmV0 200\
    .ID~.* \

# secret create name already in use
t POST secrets/create Name=mysecret Data=c2VjcmV0 409

# secret inspect
t GET secrets/mysecret 200 \
    .Spec.Name=mysecret \
    .Version.Index=1

# secret inspect non-existent secret
t GET secrets/bogus 404

# Check exists with existing secret
t GET libpod/secrets/mysecret/exists 204

# Check exists for non-existing secret
t GET libpod/secrets/bogus/exists 404

# secret list
t GET secrets 200 \
    length=1 \
    .[0].Spec.Name=mysecret \
    .[0].Version.Index=1

# secret list with filters
t GET secrets?filters='{"name":["mysecret"]}' 200 \
    length=1 \
    .[0].Spec.Name=mysecret \
    .[0].Version.Index=1

t GET secrets?filters='{"name":["mysecret2"]}' 200 \
    length=0 \

# secret libpod list with filters
t GET libpod/secrets/json?filters='{"name":["mysecret"]}' 200 \
    length=1 \
    .[0].Spec.Name=mysecret \

t GET libpod/secrets/json?filters='{"name":["mysecret2"]}' 200 \
    length=0 \

# secret list with unsupported filters
t GET secrets?filters='{"label":["xyz"]}' 500

#compat api list secrets sanity checks
t GET secrets?filters='garb1age}' 500 \
    .cause="invalid character 'g' looking for beginning of value"
t GET secrets?filters='{"label":["testl' 500 \
    .cause="unexpected end of JSON input"

#libpod api list secrets sanity checks
t GET libpod/secrets/json?filters='garb1age}' 500 \
    .cause="invalid character 'g' looking for beginning of value"
t GET libpod/secrets/json?filters='{"label":["testl' 500 \
    .cause="unexpected end of JSON input"

# secret with labels
t POST secrets/create Name=labeledsecret Data=c2VjcmV0 Labels='{"foo":"bar"}' 200
t GET secrets/labeledsecret 200 \
    .Spec.Labels.foo=bar

# secret rm
t DELETE secrets/mysecret 204
t DELETE secrets/labeledsecret 204

# secret rm non-existent secret
t DELETE secrets/bogus 404

# secret update not implemented
t POST secrets/mysecret/update 501
